perm filename NTSB.FLD[NEW,LCS] blob
sn#319869 filedate 1977-12-14 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE NOTWRT
C00040 ENDMK
C⊗;
TITLE NOTWRT
ENTRY NOTWRT
EXTERNAL BM,NOZERO,LINX,ROFF,CENTX,STF,LINES,.COMM.,MAKNUM
EXTERNAL NTS,EXTRA,REST,ALPHA,DRWNT,FONT,BREP,FERMTA
EXTERNAL DAT,RHORZ,PLTR,MIN,POSI,ALF,RDRAW,AMOD,RJBX
%TEMP.: 0
DEFINE RX4 <.COMM.+=42>
DEFINE R3< .COMM.+4 >↔DEFINE R4< .COMM.+5 >↔DEFINE R5< .COMM.+6 >
DEFINE R6< .COMM.+7 >↔DEFINE R7< .COMM.+=8 >↔DEFINE J3< .COMM.+=24 >
DEFINE J4< .COMM.+=25 >↔DEFINE J5< .COMM.+=26 >↔DEFINE J6< .COMM.+=27 >
DEFINE J8< .COMM.+=29 >↔DEFINE R9< .COMM.+=10 >↔DEFINE R8< .COMM.+=9 >
DEFINE J2< .COMM.+3 >↔DEFINE J10< .COMM.+=31 >↔DEFINE J7< .COMM.+=28 >
DEFINE RMINI< ALF+=49 >↔DEFINE RINV< ALF+=50 >↔DEFINE RJZ< .COMM.+=23 >
DEFINE RA< ALF+=51 >↔DEFINE RX< ALF+=52 >↔DEFINE RJX< ALF+=53 >
DEFINE RJY< ALF+=54 >↔DEFINE RB< ALF+=55 >↔DEFINE RJW< ALF+=56 >
DEFINE RZ< ALF+=57 >↔DEFINE JX< ALF+=58 >↔DEFINE RG< ALF+=59 >
DEFINE KL< ALF+=60 >↔DEFINE RJAC< ALF+=61 >↔DEFINE K < ALF+=62 >
DEFINE L < ALF+=63 >↔DEFINE RQ< ALF+=64 >↔DEFINE RH< ALF+=65 >
DEFINE J5X< ALF+=66 >↔DEFINE RXX< ALF+=67 >↔DEFINE JJJ< ALF+=68 >
DEFINE JY< ALF+=70 >↔DEFINE RJ< ALF+=71 >↔DEFINE RSTJ2< STF+=8 >
DEFINE PLT< PLTR >↔DEFINE POS< POSI+=9 >↔DEFINE JA< .COMM.+1 >
DEFINE CENTR< .COMM.+2 >↔DEFINE RACNT< DAT >↔DEFINE RDOT< DAT+=65 >
DEFINE XAC< DAT+=82 >↔DEFINE RACCI< DAT+=111 >↔DEFINE NACCI< DAT+=133 >
DEFINE STEM<.COMM.+=43>↔DEFINE R11<.COMM.+=12>↔DEFINE J11<.COMM.+=32>
; 00010 C********** FOR NOTE DRAWING, RESTS ACCENT AND OTHER MARKS.
; 00100 SUBROUTINE NOTWRT
; 00200 IMPLICIT INTEGER(A-Q,S-Z)
; 00300 COMMON/DL/IXRX,M,AA /FONT/JFONT
;00600 COMMON/DAT/RACNT(65),RDOT(17),XAC(7),RNOTE(22),RACCI(22),NACCI(3)
; 00700 REAL DIS,CENTR,POS,STFF,XDIS
; 00800 COMMON /STF/RSTFAC(-3/4),RSTJ2
; 00900 COMMON R2,JA,CENTR,J2,RJQ(20),JQ(20)
; 01000 COMMON/PLTR/PLT,RHT,DIS,XDIS /POSI/STFF(-3/4),JJ2,POS
;01110 C ITEMS IN FOLLOWING COMMON BLOCK ARE USED IN 'TAILS' AND 'FERM'
;01200 COMMON/ALF/INP(46),RST7,RST3,RSTX,RMINI,RINV,RA,RX,RJX,RJY,
; 01300 1 RB,RJW,RZ,JX,RG,KL,RJAC,K,L,RQ,RH,J5X,RXX,JJJ,
; 01400 1 PUNCT,JY,RJ
;01500 EQUIVALENCE (J3,JQ(1)),(J4,JQ(2)),(J5,JQ(3)),(R4,RJQ(2))
;01600 1,(R6,RJQ(4)),(J7,JQ(5)),(J8,JQ(6)),(J9,JQ(7)),(J10,JQ(8)),
;01700 1(J11,JQ(9)),(J6,JQ(4)),(R5,RJQ(3)),(R11,RJQ(9)),(STEM,JQ(20))
;01800 1,(R8,RJQ(6)),(R7,RJQ(5)),(RX,JRX),(RJZ,RJQ(20)),(R3,RJQ(1))
; 01850 1,(RX4,JQ(19)),(J5X,RZTM)
NOTWRT: 0 ; 04300 RSTX=RSTJ2
MOVE 02,RSTJ2
MOVEM 02,ALF+=48 ; 04400 C FOR MINIS AT 245
; 04500 RMINI=RSTJ2
MOVEM 02,RMINI ;OR SHOULD THIS ONLY BE IN NOTES, ETC? 15/9/72
FMPRI 02,203700 ; 04100 RST7=7.*RSTJ2
MOVEM 02,ALF+=46 ; 04800 RINV=1
MOVSI 02,201400
MOVEM 02,RINV ; 04810 RX4=R4
MOVE 02,R4
MOVEM 02,RX4
MOVE JA ; 04900 IF(JA.EQ.1)GO TO 11
CAIN 1
JRST A11
CAIN =9 ;05000 IF(JA.EQ.9)GO TO 242
JRST A242 ; 05200 C NEXT IS FOR RESTS
MOVM J4 ; 05210 IF(IABS(J4).LT.480)GO TO 302
CAIGE 00,740
JRST A302 ; 05220 C P4+500= USER-ADDED RESTS
JSA 16,EXTRA ; 05240 RETURN
JRA 16,(16)
A302: MOVE J5 ; 05300 302 IF(R8.EQ.-3)R8=0
MOVE 02,R8 ; IF(R8.NE.0.AND.J5.NE.-4)J5=-2
CAMN 2,[-3.0] ;J5=-4 MAKES REPEAT BAR SIGN
SETZB 2,R8 ;R8=-3 IS FOR 'PAGE' PROGRAM
JUMPE 02,.+5 ;SO THAT REST SHAPES ARE NOT CHANGED IN FULL BAR REST.
CAMN [-4]
JRST .+3
MOVNI 2
MOVEM J5 ; R8 PUTS NUMBER OVER WHOLE REST ONLY.
CAIG 1 ; 05500 IF(J5.GT.1)R4=R4-2
JRST .+3
MOVSI 02,575400
FADRM 02,R4 ; 05700 R7=R6*10.
MOVSI 02,204500
FMPR 02,R6
MOVEM 02,R7 ; 05800 C FOR DOTS
CAIGE 2 ; 05850 IF(J5.GE.2)R3=R3-3.0*RSTJ2
JRST .+5
MOVSI 02,202600
FMPR 02,RSTJ2
FSBRM 02,R3
MOVNS 00,R3 ; SHIFTS 1/16 AND SMALLER RESTS .5 TO LEFT
; 05900 202 CALL REST
A202: JSA 16,REST ; 06000 IF(J5.GT.1)GO TO 200
MOVEI 02,1
CAMGE 02,J5
JRST A200
SKIPN R7 ; 06100 IF(R7.EQ.0)RETURN
JRA 16,(16) ; 06200 201 RA=14
A201: MOVSI 02,204700 ; 06300 R6=0
SETZM R6
SKIPGE J5 ; 06400 IF(J5)RA=19
MOVSI 02,205460
;; MOVEM 02,RA
; 06500 R3=R3+RA*RSTJ2
FMPR 02,RSTJ2
FADRM 02,R3 ; 06600 R4=8.+R4
MOVSI 02,204400
FADRM 02,R4 ; 06700 JA=9
MOVEI 02,11
MOVEM 02,JA ; 06800 J5=7
MOVEI 02,7
MOVEM 02,J5 ;C IF P6=1 THE REST IS DOTTED
; 07000 CALL CENTX
JSA 16,CENTX ; 07100 GO TO 242
JRST A242 ; 07200 200 J5=J5-1
A200: SOS J5 ; FOR MULTIPLE TAILS ON 16TH REST, ETC.
; 07400 R4=R4+2.
MOVSI 02,202400
FADRM 02,R4 ; 07500 CALL RJBX(4.3)
JSA 16,RJBX
JUMP 02,[4.3] ; 07600 GO TO 202
JRST A202
A29: MOVEM 02,RJX ; 07800 29 RJX=R3
; 07900 RJY=CENTR+RSTJ2
MOVE 02,RSTJ2
FADR 02,CENTR
MOVEM 02,RJY ;8000 108 IF(WHOLE.NE.0)RJX=RJX+3.*RMINI
A108: MOVE 02,WHOLE#
JUMPE 02,.+5
MOVSI 02,202600
FMPR 02,RMINI
FADRM 02,RJX ;WHOLE=1 MEANS IT'S A WHOLE NOTE (WIDER THAN A HALF.)
; 08200 WHOLE=0
SETZM WHOLE ;8210 RG=9
MOVSI 02,204440
SKIPGE PLT ; 08220 IF(PLT)RG=17
MOVSI 2,205420
MOVEM 02,RG ; 08230 DOESN'T FILL DOT ON DPY
; 08300 107 CALL RDRAW(1,RG,RDOT,RMINI,RJX,RJY,RMINI)
A107: JSA 16,RDRAW
JUMP 00,[1]
JUMP 02,RG
JUMP 02,RDOT
JUMP 02,RMINI
JUMP 02,RJX
JUMP 02,RJY
JUMP 02,RMINI
;08400 **** **** *** ↑↑↑↑↑↑↑↑↑↑ THESE WERE RSTJ2 11/74
; 08500 IF(JA.EQ.1)GO TO 290
MOVEI 02,1
CAMN 02,JA
JRST A290 ; 08600 IF(R7.GE.20.)GO TO 290
MOVSI 02,205500
CAMG 02,R7
JRST A290 ; 08700 RB=POS+52.*RSTJ2
MOVSI 02,206640
FMPR 02,RSTJ2
FADR 02,POS
MOVEM 02,RB
CAME 2,RJY ; 08800 IF(RJY.NE.RB)GO TO 6241
JRST A6241
; 08900 C WHERE IS RB USED LATER?
; 09000 RJY=RJY-12*RSTJ2
MOVSI 02,204600
FMPR 02,RSTJ2
FSBRM 02,RJY
MOVNS 00,RJY ; 09100 GO TO 107
JRST A107 ; 09200 C ABOVE FOR DOTS
; 09300 290 R7=R7-10.
A290: MOVN 02,[10.0]
FADRB 02,R7
CAMGE 2,[10.0] ; 09400 IF(R7.LT.10.)GO TO 1342
JRST A1342 ;9500 RJX=RJX+RSTJ2*10.
MOVSI 02,204500
FMPR 02,RSTJ2
FADRM 02,RJX ; 09600 GO TO 107
JRST A107 ; 10000 C NOTES****
; 10200 11 CALL NTS
A11: JSA 16,NTS
SKIPGE STEM ; 10300 IF(STEM)RETURN
JRA 16,(16) ;10400 R4=RX4
MOVE 02,RX4
MOVEM 02,R4
A1242: MOVSI 02,204500 ;31500 1242 IF(R7.LT.10.)GO TO 1342
CAMLE 02,R7
JRST A1342 ; C FOR DOTTED NOTE-- P7>9
; 31700 RJX=RJAC+(22.+AMOD(R7,1.0)*59.6)*RMINI
JSA 16,AMOD
JUMP 02,R7
JUMP 02,[1.0]
FMPR 00,[59.6]
FADRI 00,205540
FMPR 00,RMINI
FADR 00,RJAC
;; MOVEM 00,RJX
; 31800 C***↑↑↑↑↑ WAS 24. 11/74
MOVE 02,RSTJ2 ;31900 RJY=CENTR+RSTJ2
FADR 02,CENTR
MOVEM 02,RJY
MOVE 2,JY ; TO USE LATER
MOVSI 3,207620 ; IF(R7.LT.100)GO TO A12
CAMLE 3,R7
JRST A12 ; SAVE +100 OR -100 IN AC3
MOVNS 3 ; R7=R7-100
FADRM 3,R7 ;ADD 100 TO R7 TO PUT DOT BELOW NOTE.
CAIE 2,=20 ; SKIP NEXT IF JY=20 (NOTE TO LFT OF STEM)
FADR 0,[14.54] ; RJX=RJX+14.54
A12: CAIN 2,12 ;32000 IF(JY.EQ.10)RJX=RJX+14.54
FADR 0,[14.54] ;32200 4322 RJX=RJX+RSTM
MOVEM 0,RJX ; PUT AWAY RJX
;32300 C MOVES DOT TO LEFT
A3322: MOVE J4 ;32400 3322 IF(MOD(J4,2).EQ.0)GO TO 108
IDIVI 2
JUMPE 1,A108 ; 32500 RX=RST7
MOVE 02,ALF+=46
;;; MOVE JY ; 32600 IF(JY.GE.20)RX=-RX
SKIPGE 3 ; IF -100 RX=-RX
;; CAIL =20
MOVNS 2 ; ADD 100 TO R7 FOR DOTS BELOW! NOTE
FADRM 02,RJY ;32700 3342 RJY=RJY+RX
; 32800 GO TO 108
JRST A108 ; 33000 1342 IF(J5.NE.0)GO TO 5322
A1342: MOVE 02,J5
JUMPN 02,A5322
SKIPN R6 ; 33100 IF(R6.EQ.0)RETURN
JRA 16,(16) ;33200 5322 R3=R3-R5*59.6*RMINI
A5322: MOVE 02,[59.6]
FMPR 02,R5
FMPR 02,RMINI
FSBRM 02,R3
MOVNS 00,R3 ; 33300 C TO SPACE OUT ACCIDS.
A242: MOVE 1,J5 ; 33700 242 IF(J5.GE.0)GO TO 2421
JUMPGE 1,A2421 ; 33800 RINV=-RINV
MOVNS 00,RINV ; 33900 J5=-J5
MOVNS 00,J5 ;NOW THAT 0 NOT USED FOR DOTS, ABOVE 3 LINES COULD BE CHNGD
; 34100 C********** LAST # WAS 281?
; 34200 C B,#,NAT, ACC ↑, ACC >, FERMATA, DOT, REP MEAS., DASH
; 34400 2421 J5X=-1
A2421: SETOM J5X ; 34500 JAX=JA
MOVE 02,JA
MOVEM 02,JAX# ; 34600 C USED AT 4241 FOR DOUBLE MARKS ON NOTES.
CAIN 02,11 ; 34700 IF(JA.EQ.9)GO TO 2423
JRST A2423 ; 34800 IF(J5.GT.3)GO TO 3121
CAILE 1,3 ; AC1 IS USED AT A211!!!
JRST A3121
;34900 C DBL FLT(4) AND DBL SHRP(5) ALWAYS USE 'DRAW' ROUTINE.
JRST A211 ; 35000 GO TO 211
; 35100 2423 RJZ=R4
A2423: MOVE 02,R4
MOVEM 02,RJZ
; 35200 C FOR 'DRWNT' WHEN PLOTTING.
; 35300 CALL NOZERO(R6)
SKIPN 2,R6
MOVE 2,[1.0] ; 35400 C R6=SIZE FACTOR (P6)
; 35500 RMINI=RMINI*R6
FMPRM 02,RMINI ; 35600 R6=0
SETZM R6 ; 35700 STEM=0
SETZM STEM ; 35800 C FOR MISC. ITEMS
A210: MOVM J4 ; 35900 210 IF(IABS(J4).LT.100)GO TO 1241
CAIGE 00,144
JRST A1241
MOVE J4 ; 36100 J4=MOD(J4,100)
IDIVI =100
MOVEM 1,J4 ; 36200 RMINI=.7*RMINI
MOVE 02,[0.7]
FMPRM 02,RMINI ;36400 C FOR 2 MARKS AT ONCE.
A1241: MOVE J5 ; 36500 1241 IF(J5.GE.11)GO TO 28
CAIL 13
JRST A28 ; GO TO (211,211,211,28,28,222,249,60,27,27),J5
SKIPLE 01,J5
CAILE 01,12
SKIPA 0
M13: JRST @M13 (1)
JUMP 00,A211
JUMP 00,A211
JUMP 00,A211
JUMP 00,A28
JUMP 00,A28
JUMP 00,A222
JUMP 00,A249
JUMP 00,A60
JUMP 00,A27
JUMP 00,A27 ; 36700 RETURN
JRA 16,(16) ; 36800 C ERROR TRAP (I.E. J5=0)
; 36900 C FOR 1 OR 2 BAR REP SIGNS.
; 37000 60 CALL BREP
A60: JSA 16,BREP ; 37100 RETURN
JRA 16,(16) ; 37300 241 CALL LINES(R3,CENTR,3)
A241: JSA 16,LINES
JUMP 02,R3
JUMP 02,CENTR
JUMP 00,[3] ; 37400 GO TO 210
JRST A210 ; 37700 211 IF(J5.EQ.0)GO TO 2422
;;;A211: MOVE 02,J5
A211: JUMPE 1,A2422 ; 37800 C GETS BACK GOOD VERTICAL POS.
CAILE 1,3 ; 37900 IF(J5.GT.3)GO TO 222
JRST A222 ; FOR 2-PASS PLOTTING (-2=THIN LINES, -3=HEAVY LINES)
; 38100 IF(PLT)GO TO 3121
MOVE 02,PLT
JUMPL 02,A3121 ; 38200 IF(JFONT.NE.0)GO TO 3121
MOVE 02,FONT
JUMPN 02,A3121 ; 38300 X=NACCI(J5)
;; MOVE 03,J5
MOVE 02,NACCI -1(1)
;;; MOVEM 02,X
;38400 CALL RDRAW(X+1,RACCI(X),RACCI,RMINI,R3,CENTR,RMINI)
;;; MOVEI 02,1
;;; ADD 02,X
AOJ 2,
MOVEM 02,%TEMP.
;;; MOVE 04,X
;;; MOVEI 03,RACCI -1(4)
MOVEI 03,RACCI -2(2)
HRRM 03,AA14
JSA 16,RDRAW
JUMP 00,%TEMP.
AA14: JUMP 02,AA14
JUMP 02,RACCI
JUMP 02,RMINI
JUMP 02,R3
JUMP 02,CENTR
JUMP 02,RMINI ; 38500 2422 IF(R6.EQ.0)RETURN
A2422: SKIPN 2,R6
JRA 16,(16)
JUMPG 2,B24 ;IF(R6.GT.0)GO TO B24
JSA 16,AMOD ;X=AMOD(R12,1.0) GET THE VERT. SPACE, IF ANY.
JUMP R11 ;R11=1407.2 MEANS 'PLUS & DOT UP 2 STEPS'.
JUMP [1.0] ;R11 INFOR WILL OVER RIDE R6 INFO!!!
FMPR [70.0] ;X*10*7 (7 UNITS PER BASIC VERTICAL STEP.)
MOVEM R11 ;R11 NOW HAS VERTICAL DISPLACEMENT
MOVE 0,J11
IDIVI 0,=100 ;REMAINDER WILL BE IN AC1 (RIGHT 2 DIGITS)
CAIL 1,=10 ;IF(AC1.GE.10)AC1=AC1*10
IMULI 1,=10
JRST B224 ;GET THE CORRECT MARK NUMBERS BELOW
B24: CAMGE 2,[0.1] ;IF(R6.LT..1)RETURN 4/76
JRA 16,(16) ;SO UP TO .0099 CAN BE PUT IN P6 FOR 'EXTRA'
MOVE 02,[0.001] ;38600 J5=(R6+.001)*100.
FADR 02,R6
FMPRI 02,207620
KIFIX 1,2
B224: MOVE 02,RX4
MOVEM 1,J5 ; 38700 R4=RX4
MOVEM 02,R4 ; 38900 R3=RJAC
MOVE 02,RJAC
MOVEM 02,R3
A1249: MOVE J5 ; 39000 1249 IF(MOD(J5,10).GT.3)GO TO 249
IDIVI 12
CAILE 1,3
JRST A249 ; 39100 J5=J5/10
SKIPL R6 ;IF R6.LT.0 SDTHEN CHANGE 1 TO 22, 2 → 23, ETC.
JRST A249-3 ;FOR MUSICA FICTA NUMS.1,2,3=FLT,#,NAT
JUMPN 0,A249-3
ADDI 1,=21 ;25,27,28,29 STILL OPEN FOR MARKS IN SUBR. FERMTA
MOVE 0,1
MOVEM 0,J5
CAIL =40 ;39200 IF(J5.GT.39)GO TO 1249
JRST A1249 ;WHEN P1=1, EXTRACTS ACCENT NUMBERS FROM DECIS IN P6.
A249: MOVE J5 ;39400 249 IF(J5.GT.30)GO TO 28
CAILE 36
JRST A28
CAILE 12 ; 39500 IF(J5.GT.10)GO TO 246
JRST A246
SKIPN J5 ; 39600 IF(J5.EQ.0)RETURN
JRA 16,(16) ;39700 IF(JA.NE.1)GO TO 250
MOVEI 02,1
CAME 02,JA
JRST A250 ; 39900 RB=14.
MOVSI 02,204700 ;R11 WILL BE 0 IF R6 HAD MARKS INFO
MOVEM 02,RB
MOVE 1,J4 ; 40000 IF(MOD(J4,2).EQ.0)GO TO 244
IDIVI 1,2
JUMPE 2,A244
CAIN 7 ; 40100 IF(J5.EQ.7)GO TO 6322
JRST A6322
CAIE =9 ; 40200 IF(J5.NE.9)GO TO 244
JRST A244
A6322: MOVE 3,J4 ; 40300 6322 IF(STEM.GT.1)GO TO 7322
MOVE 1,STEM
CAILE 1,1
JRST A7322 ; 40400 IF(J4.LT.5)GO TO 244
CAIGE 3,5
JRST A244
A7322: CAIG 3,=9 ;40500 7322 IF(J4.LE.9)GO TO 8322
JRST A8322
CAIN 1,2 ; 40600 IF(STEM.EQ.2)GO TO 244
JRST A244
JUMPE 1,A244 ; 40700 IF(STEM.EQ.0)GO TO 244
; 40800 8322 RB=21
A8322: MOVSI 02,205520
MOVEM 02,RB
;40900 C PUTS ACCENT DOWN OR UP 1 SPACE. AVOIDS PUTTING DOT OR DASH ON LINE
A244: MOVE 2,STEM ; 41000 244 IF(STEM.EQ.1)GO TO 9322
CAIN 2,1
JRST A9322
JUMPN 2,A245 ; 41100 IF(STEM.NE.0)GO TO 245
; 41200 IF(J4.GE.7)GO TO 245
MOVEI 02,7
CAMG 02,J4
JRST A245 ; 41300 9322 RB=-RB
A9322: MOVNS 00,RB ; 41700 245 CENTR=CENTR+RB*RSTX
MOVNS R11 ;R11= THE VERT. DISPLACEMENT
A245: MOVE 02,RB
FADR 2,R11
FMPR 02,ALF+=48
FADRM 02,CENTR
SETZM R11
A250: CAILE 12 ;41800 250 IF(J5.GT.10)GO TO 281
JRST A281
CAIGE 6 ; 41900 IF(J5.LT.6)GO TO 281
JRST A281 ; 42000 JA=9
MOVEI 02,11
MOVEM 02,JA
CAIE 7 ; 42100 IF(J5.NE.7)GO TO 253
JRST A253 ; 42200 C 7=DOT
MOVE 02,R3 ;42300 RXX=R3
MOVEM 02,RXX ; 42400 R3=R3+6.7*RMINI
MOVE 02,[6.7]
FMPR 02,RMINI
FADRB 02,R3 ; 42500 C CENTERS THE DOT
JRST A29 ; 42600 GO TO 29
A253: CAIN 11 ; 42700 253 IF(J5.EQ.9)GO TO 271
JRST A271 ;42800 C 9=DASH
A251: SKIPGE RB ;42900 251 IF(RB.LT.0)RINV=-RINV
A2222: SKIPN 2,R11 ;43000 C FIX THIS!!!! FOR BOWINGS, ETC.
JRST AALPH
FADRM 2,CENTR
FDVR 2,[7.0] ; GET DISPLACEMENT IN SCALE STEPS
FADRM 2,R4 ;ADD TO HEIGHT
SETZM R11
MOVE 1,STEM
CAIN 1,1 ;IF(STEM.EQ.1)R11=-R11 FOR WEDGE
MOVNS 2
FADRM 2,RX4
AALPH: CAIE 24 ; 43100 2222 IF(J5.NE.20)GO TO 2223
JRST A2223 ; 43300 JA=7
MOVEI 02,7
MOVEM 02,JA ; 43400 R5=0
SETZM R5 ; 43500 J7=1
MOVEI 02,1
MOVEM 02,J7 ; 43600 CALL ALPHA
JSA 16,ALPHA ; 43700 C FOR TRILL -- J5=20
JRA 16,(16)
A2223: CAIN 21 ; 43900 2223 IF(J5.EQ.17)GO TO 323
JRST A323
CAIE 22 ; 44000 IF(J5.NE.18)GO TO 222
JRST A222 ; 44100 323 RINV=J5
A323: FLTR 0,0 ; FLOAT IT.
MOVEM 0,RINV ; 44200 C FOR MORD, INV.MORD
A222: JSA 16,FERMTA ; 44400 GO TO 5241
JRST A5241
A246: CAIGE 12 ; 44800 246 IF(J5.LT.10)GO TO 245
JRST A245 ; 45020 RZ=3
MOVSI 02,202600 ; 45040 IF(STEM.EQ.1)RZ=9+R8
MOVEI 3,1
CAME 3,STEM
JRST .+3
MOVSI 02,204440
FADR 02,R8
;;;;;; MOVEM 02,RZ
FMPR 02,RMINI ;45060 R4=R4+RZ*RMINI/RSTJ2
FDVR 02,RSTJ2
FADRB 02,R4
CAML 2,[12.5] ; 45100 IF(R4.LT.12.5)R4=12.5
JRST .+3
MOVSI 02,204620
MOVEM 02,R4 ; 45200 CALL CENTX
JSA 16,CENTX
MOVE J5 ; 45300 IF(J5.EQ.26)GO TO 222
CAIE 32
JRST A28
MOVE R11 ;R11=DISPLACEMENT
FADRM CENTR
JRST A222 ; 45400 C 26 IS NEW NUMB FOR FERMATA.
A28: CAIGE =30 ; 45500 28 IF(J5.LT.30)GO TO 281
JRST A281 ; PRINTS ONLY NUMS 0→5 AS FINGERINGS OVER NOTES.
CAIL =36 ;IF(J5.GE.36)GO TO A28X
JRST A28X
SUBI =30 ;R5=J5-30 GET THE 1 DIGIT NUM.
FLTR ; FLOAT IT
MOVEM .COMM.+6 ; R5
MOVE [0.7] ;0.7
MOVEM .COMM.+7 ; R6=.75 SIZE OF NUM.
MOVSI 0,203600 ;GET 6.0
MOVEI 2,2
CAME 2,STEM ;IF(STEM.EQ.1) SHIFT 2 TO RIGHT
FADR 0,[2.0]
FMPR 0,STF+=8 ;* RSTJ2
KIFIX ;FIXIT
ADDM .COMM.+30 ;JX3=JX3+RSTJ2*6.0 GET REAL R3 BACK,PUSH LEFT.
SETZM .COMM.+=8 ;R7=0
SETZM .COMM.+=9 ;R8=0
SETZM .COMM.+=10 ;R9=0
MOVSI 202500 ;RA=2.5
MOVEI 2,1 ;IF(STEM.EQ.2)RA=-RA
CAME 2,STEM
JRST .+3
MOVNS
FSBR [1.5]
FLTR 2,.COMM.+=25 ; GET J4 (R4 AND RX4 GET CHANGED IN TAILS)
FADR 2 ;R4=J4+RA HGT OF NUM.
MOVEM .COMM.+5
JSA 16,MAKNUM ;CALL MAKNUM(R5)
JUMP .COMM.+6
JRA 16,(16) ;ADD HERE FOR NUMS WITH ACCENTS, ETC.
A28X: IDIVI 12 ; 45600 J5X=MOD(J5,10)
MOVEM 1,J5X ; 45700 C J5X SAVES NEXT MARK.
CAIGE 1,4 ; 45800 IF(J5X.LT.4)J5X=0
SETZM J5X ; 45900 J5=J5/10
MOVEM 0,J5
CAILE =30 ; 46000 IF(J5.GT.30)RETURN
JRA 16,(16) ;46100 C WON'T READ 415 ETC. (CORRECT=154)
; 46200 C DOES BOTTOM MARK FIRST, THEN TOP.
EXCH J5X ; 46300 CALL EXCH(J5X,J5)
MOVEM J5 ; PUTS UPBOW, DNBOW, ETC. ABOVE STACC., ETC.
MOVEI 02,1 ; 46500 IF(JA.EQ.1)GO TO 249
CAMN 02,JA
JRST A249 ; 46600 GO TO 1241
JRST A1241 ; 46700 281 X=1
A281: MOVEI 02,1
MOVEM 02,X#
CAILE =16 ; 46800 IF(J5.GT.16)GO TO 2222
JRST A2222 ; 46900 C JUMP FOR MORD, INV.MORD, TRILL
CAIE 4 ; 47000 IF(J5.NE.4)GO TO 228
JRST A228 ; 47100 X=5
MOVEI 02,5
MOVEM 02,X ; 47200 CALL RJBX(.5)
JSA 16,RJBX
JUMP 02,[0.5] ; 47300 GO TO 328
JRST A328 ; 47400 228 IF(J5.GT.10)X=XAC(J5-10)
A228: CAIG 12
JRST .+4
MOVE 03,J5
MOVE 02,XAC -13(3)
MOVEM 02,X ;47500 C X IS POINTER IN RACNT ARRAY
A328: MOVE 02,RMINI ; 47600 328 RA=RMINI
MOVEM 02,RA ; C OR RSTJ2?
MOVE 02,RINV ; 47800 IF(RINV.LT.0)GO TO 1323
JUMPL 02,A1323 ;47900 IF(STEM.NE.1)GO TO 2323
MOVEI 02,1
CAME 02,STEM
JRST A2323
CAIE 4 ; 48000 IF(J5.NE.4)GO TO 2323
JRST A2323 ; 48100 1323 RA=-RA
A1323: MOVNS 00,RA ;48200 C ↑↑↑ X ↑↑↑ PICKS UP TYPO ERRORS
;48300 2323 IF(X.LT.54)CALL RDRAW(X+1,RACNT(X),RACNT,RA,R3,CENTR,RMINI)
A2323: MOVEI 02,66
CAMG 02,X
JRST A5241
MOVEI 02,1
ADD 02,X
MOVEM 02,%TEMP.
MOVE 03,X
MOVEI 03,RACNT -1(3)
HRRM 03,AA24
SETZM JTH# ;JTH=0
SKIPL PLTR ;IF(IPLT.GE.0)GO TO AA1
JRST AA1
MOVNI 2
MOVEM JTH ;JTH=-2
AA1: MOVE CENTR
FADR R11 ;RJJJ=CENTR+R11 (DISPLACEMENT UNIT)
MOVEM JJJ
JSA 16,RDRAW
JUMP 00,%TEMP.
AA24: JUMP 02,AA24
JUMP 02,RACNT
JUMP 02,RA
JUMP 02,R3
JUMP 02,JJJ
JUMP 02,RMINI ; PTR, WDCNT, ARRAY,Y MULT,HOR ADD,VERT ADD, X,Y,MULT
;48500 IN ARRAY, 33.012 WOULD BE X=33, Y=12. 101.123 IS X=-1, Y=-23.
SKIPL JTH ; 48600 IF(JTH.GE.0) GO TO 5241
JRST A5241 ; 48700 4241 JJJ=J5
AOS JTH ;JTH=JTH-1
MOVE 1,RMINI
MOVE J5 ;IF(J5.NE.13)GO TO AA27 13=HARMONIC
CAIE =13
JRST AA27
FADR 1,[0.02] ;RMINI=RMINI+.02
JRST AA1
AA27: MOVN 1,PLTR+3
CAIN =14 ;IF(J5.EQ.14)R3=R3+XDIS 14= +
FADRM 1,R3
FADRM 1,CENTR ;CENTR=CENTR-XDIS TO THICKEN > - ∧ ETC. WHEN PLOTTING
JRST AA1 ;GO TO AA1
A4241: MOVE 1,J5 ;*****WHERE IS JJJ USED????***********
MOVEM 1,JJJ ; 48800 J5=J5X
MOVE J5X
B4241: MOVEM J5 ; 48900 J5X=-1
SETOM J5X ; 49000 IF(JAX.NE.1)GO TO 7241
MOVEI 02,1
CAME 02,JAX
JRST A7241
CAILE 12 ; 49100 IF(J5.GT.10)GO TO 246
JRST A246
CAIE 7 ; 49200 IF(J5.NE.7)GO TO 7241
JRST A7241
CAIE 1,=9 ; 49300 IF(JJJ.NE.9)GO TO 249
JRST A249 ; 49400 7241 RXX=8.5*RMINI
A7241: MOVSI 02,204420
FMPR 02,RMINI
MOVEM 02,RXX ; 49500 C↑↑↑↑↑↑ 11/74 WAS RH*
MOVEI 02,1 ; 49600 IF(STEM.EQ.1)RXX=-RXX
CAMN 02,STEM
MOVNS 00,RXX ; 49700 CENTR=CENTR+RXX
MOVE 02,RXX
FADRM 02,CENTR
CAIE 32 ; 49800 IF(J5.EQ.26)J5=6
JRST A1241
MOVEI 02,6
MOVEM 02,J5 ; 49900 C TEMPORARY?? FIX
; 50000 GO TO 1241
JRST A1241 ; 50100 C >=5, ↑=4
; 50200 27 R3=J3
A27: FLTR 2,J3 ;MOVE 2,J3
; TLC 2,232000
; FADR 2,2
MOVEM 2,R3 ; 50300 C DASHES
A271: MOVSI 02,204700 ;50400 271 CALL LINX(R3,CENTR,R3+RMINI*14.,CENTR)
FMPR 02,RMINI
FADR 02,R3
MOVEM 02,%TEMP.
JSA 16,LINX
JUMP 02,R3
JUMP 02,CENTR
JUMP 02,%TEMP.
JUMP 02,CENTR
SKIPL PLTR
JRST A5241 ;MAKE THICKER IF PLOTTING
MOVN PLTR+3 ;CENTR=CENTR-XDIS (1/DIS)
FADRM CENTR
JSA 16,LINX
JUMP 02,R3
JUMP 02,CENTR
JUMP 02,%TEMP.
JUMP 02,CENTR
A5241: MOVE 0,J11 ;IF(J11.EQ.0)GO TO B5241
JUMPE B5241
IDIVI 0,=100
SETZM J11 ;J11=0 SO IT WILL PASS HERE SECOND TIME AROUND.
SETZM R11 ;R11=0 SO DOUBLE MARKS WON'T BE MOVED UP TWICE.
JRST B4241 ; GO TO B4241
B5241: MOVE 02,J5X ; 50600 5241 IF(J5X.GT.0)GO TO 4241
JUMPG 02,A4241 ;J5X IS FOR DOUBLE MARKS.(WHAT ABOUT DOT POSITION.)
; 50800 RETURN
JRA 16,(16) ; 50900 6241 R3=RXX
A6241: MOVE 02,RXX
MOVEM 02,R3 ;51000 C RESET R3 AFTER A DOT.
; 51100 GO TO 5241
JRST A5241 ; 51200 3121 J5=J5+9
A3121: MOVEI 02,11
ADDM 02,J5 ; SOON WILL HAVE DBL FLAT (4) AND DBL SHRP (5)
;51400 C TO DRAW GOOD ACCIS ON PLOTTER - NOT ON DPY.(IN CLEF4.DMD)
; 51500 CALL DRWNT
JSA 16,DRWNT ; 51600 GO TO 2422
JRST A2422
END ; 51700 END